<template>
  <div class="age">
    <div class="title">
      <p>年龄比例</p>
      <img src="../../images/dataScreen-title.png" alt="" />
    </div>
    <div class="charts" ref="charts"></div>
  </div>
</template>

<script setup lang="ts">
  import { onMounted, ref } from 'vue'
  import * as echarts from 'echarts'
  let charts = ref()
  //组件挂载完毕初始化图形图标
  onMounted(() => {
    let mychart = echarts.init(charts.value)
    //设置配置项
    let option = {
      // 提示框组件
      tooltip: {
        // 选择item项触发
        trigger: 'item',
      },
      legend: {
        right: 30,
        top: 80,
        height: 100, // height 可以控制换行
        orient: 'vertical', //图例组件方向的设置
        textStyle: {
          color: 'white',
          fontSize: 14,
        },
      },
      series: [
        {
          name: '年龄比例',
          type: 'pie',
          radius: ['40%', '70%'],
          center: ['25%', '50%'], // 图的位置设置
          // 是否启用防止标签重叠策略，默认开启，在标签拥挤重叠的情况下会挪动各个标签的位置，防止标签间的重叠。
          avoidLabelOverlap: false,
          // 图标每一项的样式
          itemStyle: {
            borderRadius: 10,
            borderColor: '#fff',
            borderWidth: 2,
          },
          // 图标文字配置
          label: {
            show: true,
            position: 'inside',
            color: 'white',
          },
          emphasis: {
            //饼图中间显示配置
            label: {
              show: true,
              fontSize: '15',
              fontWeight: 'bold',
              color: '#f00',
              // formatter:'{b}: {d}'
            },
          },
          // 标签的视觉引导线配置
          labelLine: {
            show: false,
          },
          data: [
            { value: 1048, name: '军事' },
            { value: 735, name: '新闻' },
            { value: 580, name: '直播' },
            { value: 484, name: '娱乐' },
            { value: 300, name: '财经' },
            { value: 300, name: '财经1' },
            { value: 300, name: '财经2' },
            { value: 300, name: '财经3' },
            { value: 300, name: '财经4' },
            { value: 300, name: '财经5' },
          ],
        },
      ],
      //调整图形图标的位置
      grid: {
        left: 0,
        top: 0,
        right: 0,
        bottom: 0,
      },
    }
    mychart.setOption(option)
  })
</script>

<style lang="scss" scoped>
  .age {
    width: 100%;
    height: 100%;
    background: url(../../images/dataScreen-main-cb.png) no-repeat;
    background-size: 100% 100%;
    .title {
      margin-left: 20px;
      p {
        color: #fff;
        font-size: 20px;
      }
    }
    .charts {
      height: 260px;
    }
  }
</style>
